package org.vaadin.nf4v.core.config.process.parser;

import org.vaadin.nf4v.core.config.ContextConfigurationException;
import org.vaadin.nf4v.core.config.process.NavigationConfigProcessor;

/**
 * Navigation configuration parser.
 * <p/>
 * May be used to prepare some data structures from entire configuration.
 * E.g. prepare navigation menu model for application.
 * <p/>
 * Note: do not use it to add additional configuration objects, cause they will not be processed by other parsers.
 */
public interface NavigationConfigParser extends ConfigParser {

    /**
     * Postprocess entire application configuration
     * Processor provided to register handlers.
     * Base navigation configuration may be obtained from processor.
     *
     * @param navigationConfigProcessor navigation configuration processor.
     * @throws ContextConfigurationException on configuration error
     */
    void parse(NavigationConfigProcessor navigationConfigProcessor) throws ContextConfigurationException;
}
